home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* MSSetup Toolkit Clip-Art Connection Setup '************************************************************************** '$NODEFINE DEBUG '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST DIREXIST = 1000 CONST DISKSPACE = 1200 CONST BADPATH = 6400 CONST MODELESS = 5000 CONST MODELESS2 = 1400 ''Bitmap ID CONST LOGO = 1 CONST SW_SHOWMAXIMIZED = 3 GLOBAL DEST$ ''Default destination directory. GLOBAL SrcDir$ 'setup src dir GLOBAL ReadMe$ 'the readme file ''This is a counter to detect if a dialog is already displayed DLGISUP% = 0 DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION ShowWindow LIB "user" (hwnd%, flag%) AS INTEGER DECLARE FUNCTION ShellExecute LIB "shell.dll" (hwnd%, lpOperation$, lpFile$, lpParameters$, lpDirectory$, iShowCmd% ) AS INTEGER INIT: '$IFDEF DEBUG OpenLogFile "C:\proj\clipcon\setup\layout\setup.log", 0 '$ENDIF 'DEBUG hwnd = HwndFrame() n = ShowWindow( hwnd, SW_SHOWMAXIMIZED ) CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle "Clip-Art Connection Setup" ReadMe$ = "readme.wri" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SHOPPER.INF" END IF ReadInfFile szInf$ WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: ClearCopyList DEST$ = "C:\CLIPCON" SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO GETPATH END IF ''** ''** See if a previous installation exists ''** ''check for directory Directory% = DoesDirExist(DEST$) IF Directory% > 0 THEN sz$ = UIStartDlg(CUIDLL$, DIREXIST, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN UIPop 1 GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO GETPATH ELSE UIPop 1 GOSUB ASKQUIT GOTO GETPATH END IF END IF ''Put up modeless dialog while files are being copied ''sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", APPHELP, HELPPROC$) SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone DATABASE$ = MAKEPATH(DEST$,"DATA") CreateDir DATABASE$, cmoNone THUMB$ = MAKEPATH(DEST$,"THUMB") CreateDir THUMB$, cmoNone CLIPS$ = MAKEPATH(DEST$,"CLIPS") CreateDir CLIPS$, cmoNone AddSectionFilesToCopyList "Files", SrcDir$, DEST$ AddSectionFilesToCopyList "DATABASE", SrcDir$, DEST$ AddSectionFilesToCopyList "THUMB", SrcDir$, DEST$ '** '** Check for free disk space '** StillNeed& = GetCopyListCost("", "", "") IF StillNeed& > 0 THEN i% = DoMsgBox("There is not enough disk space on the specified drive. Please free up at least "+str$(StillNeed&)+" bytes or choose another drive and try again.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) GOTO GETPATH END IF CopyFilesInCopyList ''Remove modeless ''UIPop 1 CreateProgmanGroup "ConnectSoft","", cmoNone ShowProgmanGroup "ConnectSoft", 1, cmoNone CreateProgmanItem "ConnectSoft", "Clip-Art Connection", MakePath(DEST$,"shopper.exe"),"", cmoOverwrite CreateProgmanItem "ConnectSoft", "Clip-Art Connection Read Me", MakePath( DEST$, ReadMe$ ),"", cmoOverwrite ClearCopyList '$IFDEF DEBUG CloseLogFile '$ENDIF 'DEBUG QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 IF dlg% = EXITSUCCESS THEN sz$ = DEST$ + "\" + ReadMe$ i% = ShellExecute( NULL, NULL, sz$, NULL, DEST$, SW_SHOWMAXIMIZED ) END IF END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call 800-234-9497!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION